[INFO] cloning repository https://github.com/3541/bt
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/3541/bt" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F3541%2Fbt", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F3541%2Fbt'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 5fd7a61201e34f1a7e0a9ea237cdc54f1129fb1f
[INFO] checking 3541/bt against try#72f88fc4e9458f89516a0b8b0868f3718aec5b47 for pr-74989
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F3541%2Fbt" "/workspace/builds/worker-0/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/3541/bt on toolchain 72f88fc4e9458f89516a0b8b0868f3718aec5b47
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+72f88fc4e9458f89516a0b8b0868f3718aec5b47" "read-manifest" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/3541/bt
[INFO] finished tweaking git repo https://github.com/3541/bt
[INFO] tweaked toml for git repo https://github.com/3541/bt written to /workspace/builds/worker-0/source/Cargo.toml
[INFO] crate git repo https://github.com/3541/bt already has a lockfile, it will not be regenerated
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+72f88fc4e9458f89516a0b8b0868f3718aec5b47" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+72f88fc4e9458f89516a0b8b0868f3718aec5b47" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] c4bea964a62808b4edc3aa97f0406af3a21ff9bb231afbb7766c54295c8beaed
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "c4bea964a62808b4edc3aa97f0406af3a21ff9bb231afbb7766c54295c8beaed", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c4bea964a62808b4edc3aa97f0406af3a21ff9bb231afbb7766c54295c8beaed", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c4bea964a62808b4edc3aa97f0406af3a21ff9bb231afbb7766c54295c8beaed", kill_on_drop: false }`
[INFO] [stdout] c4bea964a62808b4edc3aa97f0406af3a21ff9bb231afbb7766c54295c8beaed
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+72f88fc4e9458f89516a0b8b0868f3718aec5b47" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] b448847c5e4ffc4d487bf8240f6f70b5b99624d29aad832a6d97398bd07c05be
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "b448847c5e4ffc4d487bf8240f6f70b5b99624d29aad832a6d97398bd07c05be", kill_on_drop: false }`
[INFO] [stderr]     Checking bt v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::io`
[INFO] [stdout]  --> src/main.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::io;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/torrent/bencode/mod.rs:46:25
[INFO] [stdout]    |
[INFO] [stdout] 46 |                 x @ '0' ... '9' => { acc.push(x as char) },
[INFO] [stdout]    |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/torrent/bencode/mod.rs:82:21
[INFO] [stdout]    |
[INFO] [stdout] 82 | ...   '0' ... '9' => { ret.push(match ByteString::from_string((&text[i..]).to_vec()) { Ok((x, n)) => { i += n; len += n; x }, Err(e) => {...
[INFO] [stdout]    |           ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/torrent/bencode/mod.rs:103:24
[INFO] [stdout]     |
[INFO] [stdout] 103 | ...   if let '0' ... '9' = text[i] as char {} else { return Err(format!("Malformed key field. Keys must be bencode strings. Unexpected ch...
[INFO] [stdout]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/torrent/bencode/mod.rs:120:21
[INFO] [stdout]     |
[INFO] [stdout] 120 | ...   '0' ... '9' => { match ByteString::from_string((&text[i..]).to_vec()) { Ok((x, n)) => { i += n; len += n; x}, Err(e) => { return Er...
[INFO] [stdout]     |           ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/torrent/bencode/mod.rs:140:16
[INFO] [stdout]     |
[INFO] [stdout] 140 |     if let '0' ... '9' = text[0] as char {} else { return Err("Malformed number.".to_string()); }
[INFO] [stdout]     |                ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]    --> src/torrent/bencode/mod.rs:155:9
[INFO] [stdout]     |
[INFO] [stdout] 155 |     use super::*;
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs::File`
[INFO] [stdout]    --> src/torrent/bencode/mod.rs:156:9
[INFO] [stdout]     |
[INFO] [stdout] 156 |     use std::fs::File;
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::prelude::*`
[INFO] [stdout]    --> src/torrent/bencode/mod.rs:157:9
[INFO] [stdout]     |
[INFO] [stdout] 157 |     use std::io::prelude::*;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io`
[INFO] [stdout]  --> src/torrent/mod.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::io;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io`
[INFO] [stdout]  --> src/main.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::io;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/torrent/bencode/mod.rs:46:25
[INFO] [stdout]    |
[INFO] [stdout] 46 |                 x @ '0' ... '9' => { acc.push(x as char) },
[INFO] [stdout]    |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/torrent/bencode/mod.rs:82:21
[INFO] [stdout]    |
[INFO] [stdout] 82 | ...   '0' ... '9' => { ret.push(match ByteString::from_string((&text[i..]).to_vec()) { Ok((x, n)) => { i += n; len += n; x }, Err(e) => {...
[INFO] [stdout]    |           ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/torrent/bencode/mod.rs:103:24
[INFO] [stdout]     |
[INFO] [stdout] 103 | ...   if let '0' ... '9' = text[i] as char {} else { return Err(format!("Malformed key field. Keys must be bencode strings. Unexpected ch...
[INFO] [stdout]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/torrent/bencode/mod.rs:120:21
[INFO] [stdout]     |
[INFO] [stdout] 120 | ...   '0' ... '9' => { match ByteString::from_string((&text[i..]).to_vec()) { Ok((x, n)) => { i += n; len += n; x}, Err(e) => { return Er...
[INFO] [stdout]     |           ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/torrent/bencode/mod.rs:140:16
[INFO] [stdout]     |
[INFO] [stdout] 140 |     if let '0' ... '9' = text[0] as char {} else { return Err("Malformed number.".to_string()); }
[INFO] [stdout]     |                ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io`
[INFO] [stdout]  --> src/torrent/mod.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::io;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `len`
[INFO] [stdout]   --> src/torrent/mod.rs:67:41
[INFO] [stdout]    |
[INFO] [stdout] 67 |             Ok((BencodeObject::Dict(d), len)) => {
[INFO] [stdout]    |                                         ^^^ help: if this is intentional, prefix it with an underscore: `_len`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]    --> src/torrent/mod.rs:114:42
[INFO] [stdout]     |
[INFO] [stdout] 114 | ...                   Some(s) => {},
[INFO] [stdout]     |                            ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file`
[INFO] [stdout]    --> src/torrent/mod.rs:131:22
[INFO] [stdout]     |
[INFO] [stdout] 131 |     pub fn new_multi(file: File) -> Torrent {
[INFO] [stdout]     |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/torrent/bencode/mod.rs:150:13
[INFO] [stdout]     |
[INFO] [stdout] 150 |         Err(e) => Err("Malformed string. Could not parse length".to_string()),
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `sign` is never read
[INFO] [stdout]   --> src/torrent/bencode/mod.rs:32:13
[INFO] [stdout]    |
[INFO] [stdout] 32 |         let mut sign = 1;
[INFO] [stdout]    |             ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/torrent/bencode/mod.rs:48:17
[INFO] [stdout]    |
[INFO] [stdout] 48 |                 e => { return Err("Unexpected character or field not delimited correctly.".to_string()) },
[INFO] [stdout]    |                 ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/torrent/bencode/mod.rs:53:17
[INFO] [stdout]    |
[INFO] [stdout] 53 |             Err(e) => Err("Malformed number. Did not parse.".to_string()),
[INFO] [stdout]    |                 ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/torrent/bencode/mod.rs:62:17
[INFO] [stdout]    |
[INFO] [stdout] 62 |             Err(e) => { return Err("Could not parse string length.".to_string()); },
[INFO] [stdout]    |                 ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `key` is never read
[INFO] [stdout]    --> src/torrent/bencode/mod.rs:108:17
[INFO] [stdout]     |
[INFO] [stdout] 108 |             let mut key = ByteString::new();
[INFO] [stdout]     |                 ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `klen` is never read
[INFO] [stdout]    --> src/torrent/bencode/mod.rs:109:17
[INFO] [stdout]     |
[INFO] [stdout] 109 |             let mut klen:usize = 0;
[INFO] [stdout]     |                 ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `len`
[INFO] [stdout]   --> src/torrent/mod.rs:67:41
[INFO] [stdout]    |
[INFO] [stdout] 67 |             Ok((BencodeObject::Dict(d), len)) => {
[INFO] [stdout]    |                                         ^^^ help: if this is intentional, prefix it with an underscore: `_len`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]    --> src/torrent/mod.rs:114:42
[INFO] [stdout]     |
[INFO] [stdout] 114 | ...                   Some(s) => {},
[INFO] [stdout]     |                            ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file`
[INFO] [stdout]    --> src/torrent/mod.rs:131:22
[INFO] [stdout]     |
[INFO] [stdout] 131 |     pub fn new_multi(file: File) -> Torrent {
[INFO] [stdout]     |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/torrent/bencode/mod.rs:150:13
[INFO] [stdout]     |
[INFO] [stdout] 150 |         Err(e) => Err("Malformed string. Could not parse length".to_string()),
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `sign` is never read
[INFO] [stdout]   --> src/torrent/bencode/mod.rs:32:13
[INFO] [stdout]    |
[INFO] [stdout] 32 |         let mut sign = 1;
[INFO] [stdout]    |             ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/torrent/bencode/mod.rs:48:17
[INFO] [stdout]    |
[INFO] [stdout] 48 |                 e => { return Err("Unexpected character or field not delimited correctly.".to_string()) },
[INFO] [stdout]    |                 ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/torrent/bencode/mod.rs:53:17
[INFO] [stdout]    |
[INFO] [stdout] 53 |             Err(e) => Err("Malformed number. Did not parse.".to_string()),
[INFO] [stdout]    |                 ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/torrent/bencode/mod.rs:62:17
[INFO] [stdout]    |
[INFO] [stdout] 62 |             Err(e) => { return Err("Could not parse string length.".to_string()); },
[INFO] [stdout]    |                 ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `key` is never read
[INFO] [stdout]    --> src/torrent/bencode/mod.rs:108:17
[INFO] [stdout]     |
[INFO] [stdout] 108 |             let mut key = ByteString::new();
[INFO] [stdout]     |                 ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `klen` is never read
[INFO] [stdout]    --> src/torrent/bencode/mod.rs:109:17
[INFO] [stdout]     |
[INFO] [stdout] 109 |             let mut klen:usize = 0;
[INFO] [stdout]     |                 ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `len`
[INFO] [stdout]    --> src/torrent/bencode/mod.rs:227:38
[INFO] [stdout]     |
[INFO] [stdout] 227 |             (BencodeObject::Dict(d), len) => {
[INFO] [stdout]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_len`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]   --> src/main.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 |     unsafe {
[INFO] [stdout]    |     ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_unsafe)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `len`
[INFO] [stdout]    --> src/torrent/bencode/mod.rs:259:37
[INFO] [stdout]     |
[INFO] [stdout] 259 |            (BencodeObject::Dict(d), len) => {
[INFO] [stdout]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_len`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/torrent/mod.rs:137:5
[INFO] [stdout]     |
[INFO] [stdout] 137 |     unsafe {
[INFO] [stdout]     |     ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `info`
[INFO] [stdout]   --> src/torrent/mod.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     info: Info,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `announce`
[INFO] [stdout]   --> src/torrent/mod.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 |     announce: String,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `creation_date`
[INFO] [stdout]   --> src/torrent/mod.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 |     creation_date: Option<u64>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `created_by`
[INFO] [stdout]   --> src/torrent/mod.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     created_by: Option<String>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `comment`
[INFO] [stdout]   --> src/torrent/mod.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     comment: Option<String>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `info`
[INFO] [stdout]   --> src/torrent/mod.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |     info: InfoBuilder,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `created_by`
[INFO] [stdout]   --> src/torrent/mod.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 |     created_by: Option<String>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `created_by`
[INFO] [stdout]   --> src/torrent/mod.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 41 |     fn created_by(&mut self, c: String) -> &mut TorrentBuilder {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `info`
[INFO] [stdout]   --> src/torrent/mod.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 |     fn info(&mut self, i: InfoBuilder) -> &mut TorrentBuilder {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `finalize`
[INFO] [stdout]   --> src/torrent/mod.rs:56:8
[INFO] [stdout]    |
[INFO] [stdout] 56 |     fn finalize(self) -> Result<Torrent, &'static str> {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `new_multi`
[INFO] [stdout]    --> src/torrent/mod.rs:131:12
[INFO] [stdout]     |
[INFO] [stdout] 131 |     pub fn new_multi(file: File) -> Torrent {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `print_type`
[INFO] [stdout]    --> src/torrent/mod.rs:136:4
[INFO] [stdout]     |
[INFO] [stdout] 136 | fn print_type<T>(_: &T) {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `piece_length`
[INFO] [stdout]    --> src/torrent/mod.rs:142:5
[INFO] [stdout]     |
[INFO] [stdout] 142 |     piece_length: u32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `pieces`
[INFO] [stdout]    --> src/torrent/mod.rs:143:5
[INFO] [stdout]     |
[INFO] [stdout] 143 |     pieces: Vec<[u8; 20]>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `private`
[INFO] [stdout]    --> src/torrent/mod.rs:144:5
[INFO] [stdout]     |
[INFO] [stdout] 144 |     private: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `files`
[INFO] [stdout]    --> src/torrent/mod.rs:145:5
[INFO] [stdout]     |
[INFO] [stdout] 145 |     files: TargetFiles,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `piece_length`
[INFO] [stdout]    --> src/torrent/mod.rs:149:5
[INFO] [stdout]     |
[INFO] [stdout] 149 |     piece_length: u32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `pieces`
[INFO] [stdout]    --> src/torrent/mod.rs:150:5
[INFO] [stdout]     |
[INFO] [stdout] 150 |     pieces: Vec<[u8; 20]>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `private`
[INFO] [stdout]    --> src/torrent/mod.rs:151:5
[INFO] [stdout]     |
[INFO] [stdout] 151 |     private: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `files`
[INFO] [stdout]    --> src/torrent/mod.rs:152:5
[INFO] [stdout]     |
[INFO] [stdout] 152 |     files: TargetFiles,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `piece_length`
[INFO] [stdout]    --> src/torrent/mod.rs:160:8
[INFO] [stdout]     |
[INFO] [stdout] 160 |     fn piece_length(&mut self, p: u32) -> &mut InfoBuilder {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `pieces`
[INFO] [stdout]    --> src/torrent/mod.rs:165:8
[INFO] [stdout]     |
[INFO] [stdout] 165 |     fn pieces(&mut self, p: Vec<[u8; 20]>) -> &mut InfoBuilder {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `private`
[INFO] [stdout]    --> src/torrent/mod.rs:170:8
[INFO] [stdout]     |
[INFO] [stdout] 170 |     fn private(&mut self, p: bool) -> &mut InfoBuilder {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `files`
[INFO] [stdout]    --> src/torrent/mod.rs:175:8
[INFO] [stdout]     |
[INFO] [stdout] 175 |     fn files(&mut self, f: TargetFiles) -> &mut InfoBuilder {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `finalize`
[INFO] [stdout]    --> src/torrent/mod.rs:180:8
[INFO] [stdout]     |
[INFO] [stdout] 180 |     fn finalize(self) -> Info {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `Single`
[INFO] [stdout]    --> src/torrent/mod.rs:186:5
[INFO] [stdout]     |
[INFO] [stdout] 186 |     Single(TargetFile),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `name`
[INFO] [stdout]    --> src/torrent/mod.rs:187:13
[INFO] [stdout]     |
[INFO] [stdout] 187 |     Multi { name: String, files: Vec<TargetFile> },
[INFO] [stdout]     |             ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `files`
[INFO] [stdout]    --> src/torrent/mod.rs:187:27
[INFO] [stdout]     |
[INFO] [stdout] 187 |     Multi { name: String, files: Vec<TargetFile> },
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `name`
[INFO] [stdout]    --> src/torrent/mod.rs:192:5
[INFO] [stdout]     |
[INFO] [stdout] 192 |     name: Option<String>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `length`
[INFO] [stdout]    --> src/torrent/mod.rs:193:5
[INFO] [stdout]     |
[INFO] [stdout] 193 |     length: u64,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `md5sum`
[INFO] [stdout]    --> src/torrent/mod.rs:194:5
[INFO] [stdout]     |
[INFO] [stdout] 194 |     md5sum: Option<String>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `path`
[INFO] [stdout]    --> src/torrent/mod.rs:195:5
[INFO] [stdout]     |
[INFO] [stdout] 195 |     path: Option<String>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `print_type`
[INFO] [stdout]   --> src/main.rs:23:4
[INFO] [stdout]    |
[INFO] [stdout] 23 | fn print_type<T>(_: &T) {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute
[INFO] [stdout]  --> src/torrent/mod.rs:4:1
[INFO] [stdout]   |
[INFO] [stdout] 4 | #![feature(core_intrinsics)]
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_attributes)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: crate-level attribute should be in the root module
[INFO] [stdout]  --> src/torrent/mod.rs:4:1
[INFO] [stdout]   |
[INFO] [stdout] 4 | #![feature(core_intrinsics)]
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]   --> src/main.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 |     unsafe {
[INFO] [stdout]    |     ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_unsafe)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/torrent/mod.rs:137:5
[INFO] [stdout]     |
[INFO] [stdout] 137 |     unsafe {
[INFO] [stdout]     |     ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `info`
[INFO] [stdout]   --> src/torrent/mod.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     info: Info,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `announce`
[INFO] [stdout]   --> src/torrent/mod.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 |     announce: String,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `creation_date`
[INFO] [stdout]   --> src/torrent/mod.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 |     creation_date: Option<u64>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `created_by`
[INFO] [stdout]   --> src/torrent/mod.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     created_by: Option<String>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `comment`
[INFO] [stdout]   --> src/torrent/mod.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     comment: Option<String>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `info`
[INFO] [stdout]   --> src/torrent/mod.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |     info: InfoBuilder,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `created_by`
[INFO] [stdout]   --> src/torrent/mod.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 |     created_by: Option<String>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `created_by`
[INFO] [stdout]   --> src/torrent/mod.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 41 |     fn created_by(&mut self, c: String) -> &mut TorrentBuilder {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `info`
[INFO] [stdout]   --> src/torrent/mod.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 |     fn info(&mut self, i: InfoBuilder) -> &mut TorrentBuilder {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `finalize`
[INFO] [stdout]   --> src/torrent/mod.rs:56:8
[INFO] [stdout]    |
[INFO] [stdout] 56 |     fn finalize(self) -> Result<Torrent, &'static str> {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `new_multi`
[INFO] [stdout]    --> src/torrent/mod.rs:131:12
[INFO] [stdout]     |
[INFO] [stdout] 131 |     pub fn new_multi(file: File) -> Torrent {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `print_type`
[INFO] [stdout]    --> src/torrent/mod.rs:136:4
[INFO] [stdout]     |
[INFO] [stdout] 136 | fn print_type<T>(_: &T) {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `piece_length`
[INFO] [stdout]    --> src/torrent/mod.rs:142:5
[INFO] [stdout]     |
[INFO] [stdout] 142 |     piece_length: u32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `pieces`
[INFO] [stdout]    --> src/torrent/mod.rs:143:5
[INFO] [stdout]     |
[INFO] [stdout] 143 |     pieces: Vec<[u8; 20]>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `private`
[INFO] [stdout]    --> src/torrent/mod.rs:144:5
[INFO] [stdout]     |
[INFO] [stdout] 144 |     private: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `files`
[INFO] [stdout]    --> src/torrent/mod.rs:145:5
[INFO] [stdout]     |
[INFO] [stdout] 145 |     files: TargetFiles,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `piece_length`
[INFO] [stdout]    --> src/torrent/mod.rs:149:5
[INFO] [stdout]     |
[INFO] [stdout] 149 |     piece_length: u32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `pieces`
[INFO] [stdout]    --> src/torrent/mod.rs:150:5
[INFO] [stdout]     |
[INFO] [stdout] 150 |     pieces: Vec<[u8; 20]>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `private`
[INFO] [stdout]    --> src/torrent/mod.rs:151:5
[INFO] [stdout]     |
[INFO] [stdout] 151 |     private: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `files`
[INFO] [stdout]    --> src/torrent/mod.rs:152:5
[INFO] [stdout]     |
[INFO] [stdout] 152 |     files: TargetFiles,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `piece_length`
[INFO] [stdout]    --> src/torrent/mod.rs:160:8
[INFO] [stdout]     |
[INFO] [stdout] 160 |     fn piece_length(&mut self, p: u32) -> &mut InfoBuilder {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `pieces`
[INFO] [stdout]    --> src/torrent/mod.rs:165:8
[INFO] [stdout]     |
[INFO] [stdout] 165 |     fn pieces(&mut self, p: Vec<[u8; 20]>) -> &mut InfoBuilder {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `private`
[INFO] [stdout]    --> src/torrent/mod.rs:170:8
[INFO] [stdout]     |
[INFO] [stdout] 170 |     fn private(&mut self, p: bool) -> &mut InfoBuilder {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `files`
[INFO] [stdout]    --> src/torrent/mod.rs:175:8
[INFO] [stdout]     |
[INFO] [stdout] 175 |     fn files(&mut self, f: TargetFiles) -> &mut InfoBuilder {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `finalize`
[INFO] [stdout]    --> src/torrent/mod.rs:180:8
[INFO] [stdout]     |
[INFO] [stdout] 180 |     fn finalize(self) -> Info {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant is never constructed: `Single`
[INFO] [stdout]    --> src/torrent/mod.rs:186:5
[INFO] [stdout]     |
[INFO] [stdout] 186 |     Single(TargetFile),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `name`
[INFO] [stdout]    --> src/torrent/mod.rs:187:13
[INFO] [stdout]     |
[INFO] [stdout] 187 |     Multi { name: String, files: Vec<TargetFile> },
[INFO] [stdout]     |             ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `files`
[INFO] [stdout]    --> src/torrent/mod.rs:187:27
[INFO] [stdout]     |
[INFO] [stdout] 187 |     Multi { name: String, files: Vec<TargetFile> },
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `name`
[INFO] [stdout]    --> src/torrent/mod.rs:192:5
[INFO] [stdout]     |
[INFO] [stdout] 192 |     name: Option<String>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> src/main.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     file.read_to_end(&mut contents);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `length`
[INFO] [stdout]    --> src/torrent/mod.rs:193:5
[INFO] [stdout]     |
[INFO] [stdout] 193 |     length: u64,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `md5sum`
[INFO] [stdout]    --> src/torrent/mod.rs:194:5
[INFO] [stdout]     |
[INFO] [stdout] 194 |     md5sum: Option<String>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `path`
[INFO] [stdout]    --> src/torrent/mod.rs:195:5
[INFO] [stdout]     |
[INFO] [stdout] 195 |     path: Option<String>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `print_type`
[INFO] [stdout]   --> src/main.rs:23:4
[INFO] [stdout]    |
[INFO] [stdout] 23 | fn print_type<T>(_: &T) {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute
[INFO] [stdout]  --> src/torrent/mod.rs:4:1
[INFO] [stdout]   |
[INFO] [stdout] 4 | #![feature(core_intrinsics)]
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_attributes)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: crate-level attribute should be in the root module
[INFO] [stdout]  --> src/torrent/mod.rs:4:1
[INFO] [stdout]   |
[INFO] [stdout] 4 | #![feature(core_intrinsics)]
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 58 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> src/main.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     file.read_to_end(&mut contents);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/torrent/bencode/mod.rs:256:8
[INFO] [stdout]     |
[INFO] [stdout] 256 |        file.read_to_end(&mut contents);
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 58 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 0.58s
[INFO] running `Command { std: "docker" "inspect" "b448847c5e4ffc4d487bf8240f6f70b5b99624d29aad832a6d97398bd07c05be", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b448847c5e4ffc4d487bf8240f6f70b5b99624d29aad832a6d97398bd07c05be", kill_on_drop: false }`
[INFO] [stdout] b448847c5e4ffc4d487bf8240f6f70b5b99624d29aad832a6d97398bd07c05be
